//! Startup OS-a

#include "postavke.h"
#include "ispis.h"
#include "razno.h"
#include "prekidi.h"
#include "vrijeme.h"
#include "tipkovnica.h"
#include "dretve.h"

#include <programi.h>

/*!
 * Funkcija koja je pozvana odmah iz asemblerskog koda kod samog pocetka
 * bootanja.
 * \param magic Bootloader magicni broj
 * \param addr Adresa multiboot_info_t strukture
 */

void j_pocetak (unsigned long magic, unsigned long addr)
{
	/* inicijalizacija svega */

	j_ispis_inicijaliziraj();

	j_visedretvenost_inicijaliziraj();

	j_prekidi_inicijaliziraj();

	j_sat_inicijaliziraj();

	j_tipkovnica_inicijaliziraj(ISTINA);

	j_dozvoli_prekidanje();


	j_ispisi("<%s:%s:%s>\nSustav inicijaliziran!\n\n",
		AUTOR, PROJEKT, PLATFORMA);


	/* pokretanje "programa" */

//	rad_s_tipkovnicom();

//	programski_prekidi();

//	primjer_spavanja(15);

//	test_dretve();

//	test_sinkro();
	
//	problem_filozofa();

//	test_sinkro2();

//	test_nas_prio();

//	test_barijera();

//	test_pisaci_citaci();

	test_dogadjaji();
	test_dogadjaji2();
	test_dogadjaji3();

	j_ispisi("\nDosao do kraja!\n");
}
